As video transmission systems have matured, digital video is more readily available via a variety of different communications systems and networks. Specifically, digital video, such as television programs, can be transmitted as multicast digital bit streams of video signals to users over networks. Multicast digital bit streams typically include digital video frames. A predetermined number of frames is conventionally referred to as a Group of Pictures (GOP). The GOP lengths are typically 15 or 30 frames. With more advanced video formats, such as Advanced Video Coding (AVC) and/or Windows Media 9 (WM9), the GOP length can be substantially longer in order to reduce the bit rate. In order to reduce costs and simplify the amount of effort associated with video transmission, different video compression/de-compression techniques have been developed and established.
Compressed video transmission streams typically include a variety of different compression frame types. With MPEG-2 and MPEG-4, the bit streams generally include three different types of frames including Intra-frames, Predictive frames, and Bidirectional interpolated frames. In a typical decoding process, Intra-frames (I-frames) can be decoded independently without the need of referencing another frame. Thus, GOPs typically start with an I-frame. Predictive frames (P-frames) can be decoded by referencing a previous I-frame or P-frame. Bidirectional interpolated frames (B-frames) can be predicted from a previous and a following P-frame or I-frame. For a given video stream, all three ways of coding are attempted and the best and most efficient combination is utilized. For example, a common MPEG-2 video stream can be 15 frames long and have the sequence IBBPBBPBBPBBPBB.
Typically, a video stream, such as a MPEG-2 data stream, is transmitted from a multicast source to a router and/or switch via a network, e.g., an Internet Protocol (IP) distribution network. And upon receipt of the video stream, the router then transmits the video stream to a user device, such as a set-top box. Such a router (e.g., the user's Internet gateway) can potentially receive multiple multicast video streams at one time (e.g., one or more streams for each of a plurality of broadcast channels), and client devices (e.g., dedicated streaming devices such as the set-top box, mobile devices, tablet devices, etc.) can request specific streams to be output for display.
Generally, adaptive streaming enables client devices to switch between different video and/or audio qualities during a streaming session. For example, a content distribution network could provide multiple different bitrate encodings for a given instance of video content, and client devices can transition between these different encodings as appropriate (e.g., based on the client's bandwidth capabilities and network performance). In order to accomplish a smooth transition between different encodings, many adaptive streaming formats use video segmentation, where a given video is divided into segments of a consistent length. If a client device wishes to transition to a different bitrate encoding, the client device can request the next segment from the different bitrate encoding. When transitioning between multicast and unicast communications for streaming video content, conventional solutions typically produce some amount of wasteful network traffic. For instance, a system that transitions from unicast to multicast communications for a video stream may subscribe to and begin receiving data over a multicast communications channel, while the system is still receiving unicast data for the video stream. As an example, a system that begins receiving data over a multicast channel in the middle of a video segment may ultimately end up discarding the partial video segment data, as such data may not be suitable for playback and/or may be redundant with data received over a unicast channel. Such wasted bandwidth can be particularly problematic for an already constrained network link.
To facilitate understanding, identical reference numerals have been used, where possible, to designate identical elements that are common to the figures. It is contemplated that elements disclosed in one embodiment may be beneficially utilized on other embodiments without specific recitation.